package persistence.dao;

import org.hibernate.Session;

import persistence.model.Affectation;
import persistence.model.Personne;
import persistence.model.Projet;
import persistence.model.Role;
import util.HibernateUtil;

/**
 * @author Florent
 * 
 */
public class AffectationDAO {

	/**
	 * La prŽsence d'un constructeur privŽ supprime le constructeur public par
	 * dŽfaut.
	 */
	private AffectationDAO() {

	}

	/**
	 * 
	 */
	private static AffectationDAO INSTANCE = null;

	/**
	 * Le mot-clŽ synchronized sur la mŽthode de crŽation emp�che toute
	 * instanciation multiple même par différents threads. Retourne l'instance
	 * du singleton.
	 */
	public synchronized static AffectationDAO getInstance() {
		if (INSTANCE == null) {
			INSTANCE = new AffectationDAO();
		}
		return INSTANCE;
	}

	/**
	 * @param affectation
	 * @return
	 */
	public Affectation createAffectation(final Affectation affectation) {
		final Session session = HibernateUtil.getSessionFactory()
				.getCurrentSession();
		session.beginTransaction();
		session.save(affectation);
		session.getTransaction().commit();
		return affectation;
	}

	/**
	 * @param affectation
	 * @return
	 */
	public boolean deleteAffectation(final Affectation affectation) {
		final Session session = HibernateUtil.getSessionFactory()
				.getCurrentSession();
		session.beginTransaction();
		session.delete(affectation);
		session.getTransaction().commit();
		return true;
	}

}
